package com.xbongbong.saas.model;

import com.alibaba.fastjson.JSONArray;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.saas.domain.entity.DistributorAreaEntity;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * @author bomfish
 */
public interface DistributorAreaModel {
   Long insert(DistributorAreaEntity entity);

   void insertBatch(List<DistributorAreaEntity> list);

   List<DistributorAreaEntity> findEntities(Map<String, Object> param);

   Integer getEntityCount(Map<String, Object> param);

   void update(DistributorAreaEntity entity);
   /**
    * 批量删除
    * @param idIn
    * @param corpid
    * @return
    * @throws XbbException
    * 创建时间 2020/3/16 6:37 PM
    * 修改时间 2020/3/16 6:37 PM
    * @author chy
    */
   Integer deleteBatch(List<Long> idIn, String corpid) throws XbbException;

   DistributorAreaEntity getByKey(Long key, String corpid);

   /**
    * 删除实体
    * @author 吴峰
    * @date 2019/3/22 10:09
    * @param key 数据id
    * @param corpid 公司id
    * @return java.lang.Integer
    */
   Integer delete(Long key, String corpid);

   /**
    * 获取本公司所有的区域列表
    * @param corpid 公司id
    * @return 本公司所有部门/本公司所有可见部门
    */
   List<DistributorAreaEntity> findAllDistributorArea(String corpid);

   /**
    * 更新排序
    * @param list
    * @param corpid
    * @return
    */
   Integer updateBatch(List<DistributorAreaEntity> list, String corpid);



   /**
    * 获取部门的下面的所有子部门
    *
    * @param corpid 公司id
    * @param areaIdIn 要获取子部门ids的所有部门ids
    * @return 返回areaIdIn的所有的子部门（包含本身）
    */
   List<DistributorAreaEntity> getSubAreaList(String corpid, Collection<Long> areaIdIn);
}
